home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Compendium Deluxe 2
/
LSD and 17bit Compendium Deluxe - Volume II.iso
/
a
/
prog
/
misc
/
interfaces3_5.lha
/
Interfaces
/
CardRes.mod
< prev
next >
Wrap
Text File
|
1994-03-05
|
6KB
|
181 lines
(*
(* Amiga Oberon Interface Module:
** $VER: CardRes.mod 40.15 (28.12.93) Oberon 3.0
**
** (C) Copyright 1991-1992 Commodore-Amiga, Inc.
** All Rights Reserved
**
** (C) Copyright Oberon Interface 1993 by hartmut Goebel
*) All Rights Reserved
*)
MODULE CardRes;
IMPORT e * := Exec, SYSTEM *;
CONST
cardResName * = "card.resource";
TYPE
CardHandlePtr * = UNTRACED POINTER TO CardHandle;
DeviceTDataPtr * = UNTRACED POINTER TO DeviceTData;
CardMemoryMapPtr * = UNTRACED POINTER TO CardMemoryMap;
TPAmigaXIPPtr * = UNTRACED POINTER TO TPAmigaXIP;
(* Structures used by the card.resource *)
CardHandle * = STRUCT
node * : e.Node;
removed * : e.InterruptPtr;
inserted * : e.InterruptPtr;
status * : e.InterruptPtr;
flags * : SHORTSET;
END;
DeviceTData * = STRUCT
size * : LONGINT; (* Size in bytes *)
speed * : LONGINT; (* Speed in nanoseconds *)
type * : SHORTINT; (* Type of card *)
flags * : SHORTSET; (* Other flags *)
END;
CardMemoryMap * = STRUCT
commonMemory * : e.APTR;
attributeMemory * : e.APTR;
ioMemory * : e.APTR;
(* Extended for V39 - These are the size of the memory spaces above *)
commonMemSize * : LONGINT;
attributeMemSize * : LONGINT;
ioMemSize * : LONGINT;
END;
CONST
(* CardHandle.cah_CardFlags for OwnCard() function *)
resetRemove * = 0;
ifAvailable * = 1;
delayOwnerShip * = 2;
postStatus * = 3;
(* ReleaseCreditCard() function flags *)
removeHandle * = 0;
(* ReadStatus() return flags *)
statusbCCDET * = 6;
statusbBVD1 * = 5;
statusbSC * = 5;
statusbBVD2 * = 4;
statusbDA * = 4;
statusbWR * = 3;
statusbBSY * = 2;
statusbIRQ * = 2;
(* CardProgramVoltage() defines *)
voltage0v * = 0; (* Set to default; may be the same as 5V *)
voltage5v * = 1;
voltage12v * = 2;
(* CardMiscControl() defines *)
enablebDigaudio * = 1;
disablebWp * = 3;
(*
* New CardMiscControl() bits for V39 card.resource. Use these bits to set,
* or clear status change interrupts for BVD1/SC, BVD2/DA, and BSY/IRQ.
* Write-enable/protect change interrupts are always enabled. The defaults
* are unchanged (BVD1/SC is enabled, BVD2/DA is disabled, and BSY/IRQ is enabled).
*
* IMPORTANT -- Only set these bits for V39 card.resource or greater (check
* resource base VERSION)
*
*)
intbSetClr * = 7;
intbBVD1 * = 5;
intbSC * = 5;
intbBVD2 * = 4;
intbDA * = 4;
intbBSY * = 2;
intbIRQ * = 2;
(* CardInterface() defines *)
interfaceAmiga0 * = 0;
(*
* Tuple for Amiga execute-in-place software (e.g., games, or other
* such software which wants to use execute-in-place software stored
* on a credit-card, such as a ROM card).
*
* See documentatin for IfAmigaXIP().
*)
cisTplAmigaXIP * = 091H;
TYPE
TPAmigaXIP * = STRUCT
code * : SHORTINT;
link * : SHORTINT;
loc * : ARRAY 4 OF SHORTINT;
flags * : SHORTSET;
resrv * : SHORTINT;
END;
CONST
(*
* The XIPFLAGB_AUTORUN bit means that you want the machine
* to perform a reset if the execute-in-place card is inserted
* after DOS has been started. The machine will then reset,
* and execute your execute-in-place code the next time around.
*
* NOTE -- this flag may be ignored on some machines, in which
* case the user will have to manually reset the machine in the
* usual way.
*
*)
autoRun * = 0;
VAR
(*
* You have to put a pointer to the card.resource here to use the cia
* procedures:
*)
base * : e.APTR;
PROCEDURE OwnCard *{base,-006H}(handle{9} : CardHandlePtr): CardHandlePtr;
PROCEDURE ReleaseCard *{base,-00CH}(handle{9} : CardHandlePtr;
flags{0} : LONGINT);
PROCEDURE GetCardMap *{base,-012H}(): CardMemoryMapPtr;
PROCEDURE BeginCardAccess *{base,-018H}(handle{9} : CardHandlePtr): BOOLEAN;
PROCEDURE EndCardAccess *{base,-01EH}(handle{9} : CardHandlePtr): BOOLEAN;
PROCEDURE ReadCardStatus *{base,-024H}(): SHORTINT;
PROCEDURE CardResetRemove *{base,-02AH}(handle{9} : CardHandlePtr;
flag{0} : LONGINT): BOOLEAN;
PROCEDURE CardMiscControl *{base,-030H}(handle{9} : CardHandlePtr;
controlBits{1}: SHORTSET ): SHORTSET;
PROCEDURE CardAccessSpeed *{base,-036H}(handle{9} : CardHandlePtr;
nanoseconds{0}: LONGINT): LONGINT;
PROCEDURE CardProgramVoltage*{base,-03CH}(handle{9} : CardHandlePtr;
voltage{0} : LONGINT): LONGINT;
PROCEDURE CardResetCard *{base,-042H}(handle{9} : CardHandlePtr): BOOLEAN;
PROCEDURE CopyTuple *{base,-048H}(handle{9} : CardHandlePtr;
buffer{8} : ARRAY OF SYSTEM.BYTE;
tupleCode{1} : LONGINT;
size{0} : LONGINT): BOOLEAN;
PROCEDURE DeviceTuple *{base,-04EH}(tupleData{8} : e.APTR;
storage{9} : DeviceTDataPtr): LONGINT;
PROCEDURE IfAmigaXIP *{base,-054H}(handle{10} : CardHandlePtr): e.ResidentPtr;
PROCEDURE CardForceChange *{base,-05AH}(): BOOLEAN;
PROCEDURE CardChangeCount *{base,-060H}(): LONGINT;
PROCEDURE CardInterface *{base,-066H}(): LONGINT;
END CardRes.